<%@ page import="java.nio.charset.StandardCharsets" %>
<%@page contentType="text/html" %>
<%@page pageEncoding="UTF-8" %>
<%
    java.sql.Connection conn = null;
    java.lang.String strConn;
    java.sql.Statement sqlStmt = null; //语句对象
    java.sql.ResultSet sqlRst = null; //结果集对象
    try {
//conn=java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/sample?useUnicode=true&amp;characterEncoding=utf-8","root","mysql123");

        // 为了快速测试，先执行java -jar h2*.jar，创建一个本地连接模式数据库，并创建一个customer表。然后在命令行窗口按Ctrl+C关闭外置数据库，否则因为文件给锁定连接不了。

  /*
  注意：sql语句中的字段名两边的符号是上引号`   字符串值的两边的符号是'

    CREATE TABLE `customer` (
      `customerid` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `firstname` varchar(100) NOT NULL,
      `lastname` varchar(100) NOT NULL,
      `address` varchar(100) NOT NULL,
      `phone` varchar(22) NOT NULL,
      PRIMARY KEY (`customerid`)
    );

    insert into `customer` (`customerid`,`firstname`,`lastname`,`address`,`phone`) values (1,'黎','志雄', '东莞市松山湖1号','13026844888');
    insert into `customer` (`customerid`,`firstname`,`lastname`,`address`,`phone`) values (2,'黎','梓超', '北京市天安门1号','18929199291');
    insert into `customer` (`customerid`,`firstname`,`lastname`,`address`,`phone`) values (3,'黎','梓锋', '重庆市天安门8号','15688888888');
    insert into `customer` (`firstname`,`lastname`,`address`,`phone`) values ('王','笑莲', '南京市天安门10号','13088888888');

   */
        conn = java.sql.DriverManager.getConnection("jdbc:h2:~/test;MODE=MYSQL;DB_CLOSE_DELAY=-1", "sa", "sa");

        sqlStmt = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY);

//执行Sql语句 
        String sqlQuery = "select id,name,phone from test";
        sqlRst = sqlStmt.executeQuery(sqlQuery);

        // 使用execute()方法的示例,返回true表示是查询，返回false表示是更新，如果事先不知道sql语句是查询还是更新，可以使用excute()方法
//  if(sqlStmt.execute(sqlQuery))
//    sqlRst=sqlStmt.getResultSet();

%>
<center>顾客信息表</center>
<table border="1" width="100%" bordercolorlight="#CC99FF" cellpadding="2" bordercolordark="#FFFFFF" cellspacing="0">
    <tr>
        <td align="center">ID</td>
        <td align="center">地址</td>
        <td align="center">电话</td>
    </tr>
    <% while (sqlRst.next()) { //取得下一条记录 %>
    <tr><!--显示记录-->
        <td><%=sqlRst.getString("id")%>
        </td>
        <td><%=new String(sqlRst.getString("name").getBytes(StandardCharsets.UTF_8))%>
        </td>
        <td><%=sqlRst.getString("phone")%>
        </td>
    </tr>
    <% } %>
</table>
<%
    } catch (java.sql.SQLException e) {
        out.println(e.toString());
    } finally {
        //关闭结果集对象
        if (sqlRst != null) sqlRst.close();
        //关闭语句对象
        if (sqlStmt != null) sqlStmt.close();
        //关闭数据库连接
        if (conn != null) conn.close();
    }
%>  

